<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>自定义指令</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.7.14/vue.min.js"></script>
</head>
<body>
    <div id="root">
        <h2>当前的n值是: <span v-text="n"></span></h2>
        <h2>放大十倍的n值是: <span v-big="n"></span></h2>
        <button @click="n++">点我n++</button>
        <input type="text" v-fbind="n">
    </div>
    <script>
        Vue.config.productionTip = false;
        new Vue({
            el:'#root',
            data:{
                n:1
            },
            directives:{
// big函数何时被调用呢？1、指令与元素成功绑定时（一上来）。2、指令所在模板被重新解析时。
                big(element,binding){//元素和绑定对象
                    element.innerText=binding.value*10;
                    // console.log(element,binding);//检查这两个参数
                },
                fbind:{//三个函数特定，有具体关联
                    // 指令与元素成功绑定时（一上来）。
                    bind(element,binding){
                        console.log(this);//!!!!!注意，此处this是window
                        element.value=binding.value;
                    },
                    //指令所在元素被插入页面时
                    inserted(element,binding){
                        element.focus();
                    },
                    // 指令所在模板被重新解析时。
                    update(element,binding){
                        element.value=binding.value;
                    }
                }
            }
        });
    </script>
</body>
</html>